ديف أوبس

إخفاء خدمة SSH بأوبونتو

إخفاء خدمة SSH على أوبونتو باستخدام الطرق على المنافذ: شرح مفصل وعملي

تعتبر خدمة SSH (Secure Shell) من أكثر الخدمات أهمية في أنظمة لينكس، وخاصة أوبونتو، لأنها تتيح للمستخدمين إدارة النظام عن بُعد بطريقة آمنة. لكن هذه الخدمة تعرض النظام لمحاولات اختراق وهجمات متكررة من المهاجمين الذين يحاولون استغلالها للوصول غير المصرح به إلى الخادم. لذلك، من الضروري اتخاذ تدابير أمان قوية لحماية SSH، ومن أشهر وأبسط هذه الطرق إخفاء الخدمة عن طريق تغيير المنفذ الافتراضي الخاص بها.

في هذا المقال، سنناقش بشكل معمق كيفية إخفاء خدمة SSH على أوبونتو عن طريق تغيير المنفذ واستخدام طرق متعددة متعلقة بالمنافذ لزيادة مستوى الحماية، إضافة إلى شرح الخطوات التقنية اللازمة وكيفية دمج هذه الطرق مع سياسات أمان أخرى لتعزيز الحماية.


أهمية إخفاء خدمة SSH وحماية المنفذ

خدمة SSH بشكل افتراضي تستخدم المنفذ رقم 22، وهذا معروف لجميع المهاجمين وأدوات الاختراق الآلية التي تبحث عن هذا المنفذ بشكل دائم لمحاولة الدخول إلى النظام عبر كلمات مرور ضعيفة أو استغلال ثغرات. هذا يجعل المنفذ 22 هدفًا أسهل للهجمات مثل هجمات القوة الغاشمة (Brute Force Attacks) وهجمات التسلل.

عندما يتم تغيير المنفذ إلى رقم غير تقليدي يصعب تخمينه، تقل احتمالية التعرض لهجمات آلية بشكل كبير، إذ أن معظم أدوات الاختراق لا تقوم بفحص المنافذ غير التقليدية بشكل مكثف. هذه الخطوة وحدها تعطي طبقة إضافية من الأمان، خاصة عند دمجها مع إجراءات حماية أخرى مثل جدران الحماية (firewalls)، واستخدام مفاتيح SSH بدلاً من كلمات المرور.


تغيير منفذ SSH على أوبونتو: خطوة بخطوة

1. التحقق من المنفذ الجديد المراد استخدامه

قبل تغيير المنفذ، يجب اختيار رقم منفذ جديد لا يستخدمه نظام التشغيل أو خدمات أخرى، ويفضل أن يكون في النطاق من 1024 إلى 65535، لأن المنافذ الأقل من 1024 تكون محجوزة عادة للخدمات النظامية.

2. تعديل ملف إعدادات SSH

يقع ملف إعدادات خدمة SSH في المسار:

bash
/etc/ssh/sshd_config

يمكن تحرير الملف باستخدام محرر نصوص مثل nano:

bash
sudo nano /etc/ssh/sshd_config

في داخل الملف، ابحث عن السطر الذي يحتوي على:

bash
#Port 22

قم بإزالة علامة التعليق # ثم استبدل الرقم 22 بالمنفذ الجديد الذي اخترته، على سبيل المثال:

yaml
Port 2222

يمكنك اختيار أي رقم منفذ غير مستخدم كما ذُكر سابقًا.

3. إعادة تشغيل خدمة SSH لتطبيق التغييرات

بعد حفظ الملف، يجب إعادة تشغيل الخدمة لتصبح التغييرات نافذة:

bash
sudo systemctl restart ssh

أو على بعض الأنظمة:

bash
sudo service ssh restart

4. تحديث قواعد جدار الحماية

إذا كنت تستخدم جدار حماية مثل ufw على أوبونتو، يجب فتح المنفذ الجديد:

bash
sudo ufw allow 2222/tcp

كما ينصح بإغلاق المنفذ 22:

bash
sudo ufw deny 22/tcp

ثم التأكد من أن جدار الحماية مفعّل:

bash
sudo ufw enable sudo ufw status

تعزيز الأمان مع إخفاء منفذ SSH

تغيير المنفذ هو خطوة أولى ومهمة، لكن هناك إجراءات إضافية لتعزيز إخفاء الخدمة وحمايتها من المهاجمين:

1. استخدام iptables لتقييد الوصول إلى المنفذ

iptables هو أداة قوية لإدارة قواعد جدار الحماية في لينكس، يمكن استخدامها لتقييد الوصول إلى منفذ SSH بحيث يسمح فقط لعناوين IP محددة أو نطاقات معينة بالاتصال.

على سبيل المثال، للسماح فقط لعناوين IP محددة بالاتصال بالمنفذ الجديد 2222:

bash
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 2222 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 2222 -j DROP

بهذه الطريقة، أي محاولات اتصال من عناوين IP أخرى ستُرفض.

2. استخدام Port Knocking لإخفاء المنفذ بالكامل

تقنية Port Knocking تعتمد على إرسال تسلسل معين من محاولات الاتصال إلى منافذ غير مفتوحة أولاً، وعند استلام هذا التسلسل يتم فتح منفذ SSH مؤقتًا فقط للمستخدم الذي أرسل التسلسل.

هذه الطريقة تخفي المنفذ فعليًا عن المهاجمين لأنه لا يظهر مفتوحًا إلا بعد تنفيذ “طرق الطرق” الصحيحة.

يمكن إعداد Port Knocking على أوبونتو باستخدام أدوات مثل knockd.

خطوات مختصرة لإعداد knockd:

  • تثبيت الحزمة:

bash
sudo apt install knockd
  • تعديل ملف الإعداد:

bash
sudo nano /etc/knockd.conf
  • إضافة تسلسل منافذ للطرق وفتح منفذ SSH بعد تلقيها.

  • تشغيل الخدمة:

bash
sudo systemctl start knockd sudo systemctl enable knockd

جدولة جدار الحماية لتغيير حالة المنافذ تلقائيًا

يمكن أيضًا دمج تقنيات متقدمة مثل جدولة فتح وإغلاق المنفذ SSH تلقائيًا في أوقات معينة من اليوم. هذا يعزز الحماية بحيث يكون المنفذ متاحًا فقط خلال ساعات العمل أو أوقات محددة.

يتم ذلك باستخدام أدوات جدولة المهام في لينكس مثل cron مع أوامر iptables لإدارة قواعد الجدار الناري.


استخدام مفاتيح SSH بدلاً من كلمات المرور

من أهم الخطوات الأمنية التي يجب دمجها مع إخفاء المنفذ هي تعطيل الدخول بكلمة المرور واستخدام مفاتيح SSH فقط. مفاتيح SSH تكون معقدة جداً وصعبة التخمين، مما يجعل الهجمات تلقائية غير فعالة.

لتعطيل الدخول بكلمة المرور:

  1. تعديل ملف /etc/ssh/sshd_config:

nginx
PasswordAuthentication no
  1. إعادة تشغيل الخدمة:

bash
sudo systemctl restart ssh
  1. التأكد من أن المستخدم يمتلك مفتاح SSH عام مخزن في ملف ~/.ssh/authorized_keys على الخادم.


مراقبة ومحاربة محاولات الاتصال غير المرغوب فيها

حتى مع تغيير المنفذ، قد يحاول بعض المهاجمين فحص المنافذ كلها للعثور على منفذ SSH الجديد. لذلك، من المهم مراقبة محاولات الاتصال الغير مصرح بها عبر أدوات مثل fail2ban، التي ترصد محاولات الدخول الفاشلة وتقوم بحظر عناوين IP المشبوهة تلقائيًا.

تثبيت fail2ban:

bash
sudo apt install fail2ban

تعديل ملف الإعدادات الخاص بها لدعم المنفذ الجديد، ثم تشغيل الخدمة.


مقارنة بين الطرق المختلفة لإخفاء خدمة SSH

الطريقة المميزات العيوب مستوى الأمان
تغيير المنفذ سهل التنفيذ، يمنع الهجمات الآلية ليس حماية كاملة، يمكن المسح متوسط
تقييد IP باستخدام iptables يتيح الوصول فقط للمستخدمين الموثوقين معقد نوعاً ما في الإدارة عالي
Port Knocking يخفي المنفذ تمامًا، أمن عالي يحتاج لإعداد دقيق، غير عملي لكل الحالات عالي جدًا
استخدام مفاتيح SSH يمنع الدخول بكلمات المرور يتطلب إدارة المفاتيح عالي
دمج fail2ban يحظر المهاجمين تلقائيًا يحتاج إعداد وصيانة دورية عالي

خلاصة

إخفاء خدمة SSH عن المهاجمين عبر المنافذ هو استراتيجية أمنية مهمة يمكن أن تحسن بشكل ملحوظ من مستوى الحماية على أنظمة أوبونتو. تبدأ هذه الاستراتيجية بتغيير المنفذ الافتراضي إلى رقم غير تقليدي، ثم تدعيمها باستخدام جدران الحماية مع تحديد عناوين IP المسموح لها، إلى جانب تقنيات متقدمة مثل Port Knocking، وإجبار استخدام مفاتيح SSH بدلاً من كلمات المرور، وأدوات مثل fail2ban لرصد ومحاربة محاولات الدخول المشبوهة.

كل هذه الإجراءات معًا تخلق بيئة أمنة صعبة الاختراق، ما يحفظ بياناتك وأنظمتك من التهديدات المتزايدة على الإنترنت. من الضروري دائماً الجمع بين هذه الطرق لتحقيق أفضل مستوى أمان، وعدم الاعتماد على طريقة واحدة فقط.


المصادر